package com.uni.crawl.common.util.crawl;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RegExUtils;
import org.w3c.dom.Node;

/**
 * Xslt自定义扩展函数。
 * <p>
 * 自定义函数更加满足自身业务场景，且无需了解内置函数各种问题，如果熟悉内置函数的
 */
@Slf4j
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class XsltFunc {

    public static String replaceAll(String origin, String pattern, String replacement) {
        return RegExUtils.replaceAll(origin, pattern, replacement);
    }

    public static String getStringByPath(String json, String jsonPath) {
        return getJsonByPath(json, jsonPath).toString();
    }

    public static String toXmlStr(String json) {
        JSONObject jsonObj = JSONUtil.parseObj(json);
        return JSONUtil.toXmlStr(jsonObj);
    }

    public static Object getJsonByPath(String json, String jsonPath) {
        JSONObject jsonObj = JSONUtil.parseObj(json);
        return JSONUtil.getByPath(jsonObj, jsonPath);
    }

    public static Node debugNode(Node node) {
        return node;
    }


}
